package com.cy.dda.service.rule;

import java.util.List;

import com.cy.dda.model.domain.rule.Menu;
import com.cy.dda.model.vo.rule.MenuTreeVO;
import com.cy.dda.model.vo.rule.MenuVO;

/**
 * 权限管理 RuleService
 *
 * @author: tanyilin
 * @create: 2018年11月9日 上午10:17:58
 */
public interface RuleService {

	/**
	 * 查询全部菜单，有缓存
	 * 
	 * @return
	 */
	List<Menu> selectAllMenuInCache();
	
	/**
	 * 根据roleId查询该角色所拥有的全部权限菜单id
	 * 
	 * @param roleId
	 * @return
	 */
	List<Long> selectAllMenuByRoleIdInCache(Long roleId);
	
    /**
     * 查询后台左侧菜单栏
     *
     * @param roleId
     * @return
     */
    List<MenuVO> selectLeftMenusInCahce(Long roleId);
    
    /**
     * 后台权限菜单树状图
     *
     * @return
     */
    List<MenuTreeVO> selectMenuTreeInCache(Long roleId);
    
    /**
     * 给角色授权，添加菜单权限
     * 
     * @param roleId
     * @param menuIds
     */
    void doAuthorization(Long roleId, List<Long> menuIds);
}
